//#include <iostream>
#include <queue>
#include "Queue.h"

template <class Container>
void PrintContainer(const Container& con)
{
    for(auto& x:con)
    {
        std::cout<<x<<" ";
    }
    std::cout<<std::endl;
}

void TestStdPriQ01()
{
    std::priority_queue<int,std::vector<int>,std::greater<int>> pq1;
    pq1.push(4);
    pq1.push(1);
    pq1.push(5);
    pq1.push(7);
    pq1.push(9);
    while (!pq1.empty())
    {
        std::cout << pq1.top() << " ";
        pq1.pop();
    }
    std::cout << std::endl;
}

void TestWxdPriQ01()
{

    wxd::priority_queue<int,std::vector<int>,std::greater<int>> pq1;
    pq1.push(4);
    pq1.push(1);
    pq1.push(5);
    pq1.push(7);
    pq1.push(9);
    PrintContainer(pq1._con);

    while (!pq1.empty())
    {
        std::cout << pq1.top() << " ";
        pq1.pop();
    }
    std::cout << std::endl;
}

int main()
{

    TestStdPriQ01();
    std::cout<<"---"<<std::endl;
    TestWxdPriQ01();

    return 0;
}